/**
 * 给定一个数组，如果满足
 *   i - j == Ai - Aj
 * 则 i、j 之间可以连一条无向边，且权值是(Ai + Aj)
 * 求该无向图的最大权匹配，注意权值可能有负数
 * 本质上就是 Ai - i 相等的点构成一个完全图，不相等的则无边
 * 因此对每一个子图，只需要取前面最大的值相加即可
 * 注意负数不管
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using Real = double;
using llt = long long;
using pii = pair<int, int>;
using vi = vector<int>;

int N;
vector<pii> A;

llt proc(){
    map<int, vi> ss;
    for(const auto & p : A) ss[p.first - p.second].emplace_back(p.first);

    llt ans = 0;
    for(auto & p : ss){
        auto & vec = p.second;
        sort(vec.begin(),vec.end(), greater<int>());
        for(int i=1,n=vec.size();i<n;i+=2){
            auto tmp = vec[i - 1] + vec[i];
            if(tmp <= 0) break;
            ans += tmp;
        }
    }
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofakse = 1;
    cin >> nofakse;
    while(nofakse--){
        cin >> N;
        A.assign(N, {});
        for(int i=0;i<N;++i) cin >> A[A[i].second = i].first;
        cout << proc() << endl;
    }
    return 0;
}